home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 May: Tool Chest / Developer CD Series Tool Chest (Apple Computer)(May 1999).iso / Tool Chest / Networking / Network Watch (DMZ) v1.5 / sources / LMgrCall.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-25  |  5.0 KB  |  137 lines  |  [TEXT/MPS ]

  1. /*
  2.     
  3.     
  4.     File: LMgrCall.h
  5.     
  6.     By: Rich Kubota DTS
  7.     Purpose: Header file which contains the Universal Proc Ptr declarations for 
  8.         making calls to the LAP Manager routines.  Note that to get the address of the
  9.         LAP Manager hook, use the accessor function - LMGetATalkHk2() as defined
  10.         in LowMem.h.  This header file deals only with those LAP Manager calls that
  11.         can be expected to be made from a high level - like LGetATalkInfo.  In contrast,
  12.         there is no definition for LRdDispatch, since that call is made by ADEV's, 
  13.         in general.
  14.     
  15.     Date: 2/6/94
  16.     
  17. */
  18.  
  19. #ifndef __LMGRCALL__
  20. #define __LMGRCALL__
  21.  
  22. #include <AppleTalk.h>
  23. #ifdef FORPOWERPC
  24. #include <MixedMode.h>
  25. #endif
  26.  
  27. enum    {
  28.     LGetATalkInfo = 9,       // Get AppleTalk info selector
  29.     L802Attach = 21,        // Attach 802.2 protocol handler selector
  30.     L802Detach = 22,        // Detach 802.2 handler selector
  31.     LGetAEQ = 25            // Get pointer to AppleTalk Transition Queue header
  32. };
  33.  
  34.  
  35. typedef long (*LMGetATalkInfoProcPtr)(long theSelector);
  36. typedef long (*LM802DetachProcPtr)(long theSelector, Ptr ProtSpecPtr, long enetRefNum);
  37. typedef long (*LMGetAEQProcPtr)(long theSelector);
  38.  
  39. #if USESROUTINEDESCRIPTORS
  40. typedef long (*LM802AttachProcPtr)(long theSelector, MPPProtocolHandlerUPP ProtHandlerPtr, Ptr ProtSpecPtr, long enetRefNum);
  41. #else
  42. typedef long (*LM802AttachProcPtr)(long theSelector, ProcPtr ProtHandlerPtr, Ptr ProtSpecPtr, long enetRefNum);
  43. #endif
  44.  
  45. #if USESROUTINEDESCRIPTORS
  46. enum  {
  47.     uppLMGetAtalkInfoProcInfo    = kRegisterBased
  48.         |RESULT_SIZE(SIZE_CODE(sizeof(long)))
  49.         |REGISTER_RESULT_LOCATION(kRegisterD1)
  50.         |REGISTER_ROUTINE_PARAMETER(1,kRegisterD0,kFourByteCode),
  51.     uppLM802AttachProcInfo         = kRegisterBased
  52.         |RESULT_SIZE(SIZE_CODE(sizeof(long)))
  53.         |REGISTER_RESULT_LOCATION(kRegisterD0)
  54.         |REGISTER_ROUTINE_PARAMETER(1,kRegisterD0,kFourByteCode)
  55.         |REGISTER_ROUTINE_PARAMETER(2,kRegisterA0,kFourByteCode)
  56.         |REGISTER_ROUTINE_PARAMETER(3,kRegisterA1,kFourByteCode)
  57.         |REGISTER_ROUTINE_PARAMETER(4,kRegisterD2,kFourByteCode),
  58.     uppLM802DetachProcInfo         = kRegisterBased
  59.         |RESULT_SIZE(SIZE_CODE(sizeof(long)))
  60.         |REGISTER_RESULT_LOCATION(kRegisterD0)
  61.         |REGISTER_ROUTINE_PARAMETER(1,kRegisterD0,kFourByteCode)
  62.         |REGISTER_ROUTINE_PARAMETER(2,kRegisterA1,kFourByteCode)
  63.         |REGISTER_ROUTINE_PARAMETER(3,kRegisterD2,kFourByteCode),
  64.     uppLMGetAEQProcInfo         = kRegisterBased
  65.         |RESULT_SIZE(SIZE_CODE(sizeof(long)))
  66.         |REGISTER_RESULT_LOCATION(kRegisterA1)
  67.         |REGISTER_ROUTINE_PARAMETER(1,kRegisterD0,kFourByteCode)
  68. };
  69. #endif
  70.  
  71. #if USESROUTINEDESCRIPTORS
  72. typedef UniversalProcPtr LMGetATalkInfoUPP;
  73.  
  74. #define CallLMGetATalkInfoProc(userRoutine, theSelector)        \
  75.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppLMGetAtalkInfoProcInfo, (theSelector))
  76. #define NewLMGetATalkInfoProc(userRoutine)        \
  77.         (LMGetATalkInfoUPP) NewRoutineDescriptor((ProcPtr)userRoutine, uppLMGetAtalkInfoProcInfo, GetCurrentISA())
  78.  
  79. typedef UniversalProcPtr LM802AttachUPP;
  80.  
  81. #define CallLM802AttachProc(userRoutine, theSelector, ProtHandlerPtr, ProtSpecPtr, enetRefNum)        \
  82.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppLM802AttachProcInfo, (theSelector), (ProtHandlerPtr), (ProtSpecPtr), (enetRefNum))
  83. #define NewLM802AttachProc(userRoutine)        \
  84.         (LM802AttachUPP) NewRoutineDescriptor((ProcPtr)userRoutine, uppLM802AttachProcInfo, GetCurrentISA())
  85.  
  86. typedef UniversalProcPtr LM802DetachUPP;
  87.  
  88. #define CallLM802DetachProc(userRoutine, theSelector, ProtSpecPtr, enetRefNum)        \
  89.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppLM802DetachProcInfo, (theSelector), (ProtSpecPtr), (enetRefNum))
  90. #define NewLM802DetachProc(userRoutine)        \
  91.         (LM802DetachUPP) NewRoutineDescriptor((ProcPtr)userRoutine, uppLM802DetachProcInfo, GetCurrentISA())
  92.  
  93. typedef UniversalProcPtr LMGetAEQUPP;
  94.  
  95. #define CallLMGetAEQProc(userRoutine, theSelector)        \
  96.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppLMGetAtalkInfoProcInfo, (theSelector))
  97. #define NewLMGetAEQProc(userRoutine)        \
  98.         (LMGetAEQUPP) NewRoutineDescriptor((ProcPtr)userRoutine, uppLMGetAEQProcInfo, GetCurrentISA())
  99.  
  100. #else
  101. typedef LMGetATalkInfoProcPtr LMGetATalkInfoUPP;
  102.  
  103. #define CallLMGetATalkInfoProc(userRoutine, theSelector)        \
  104.         (*(userRoutine))((theSelector))
  105. #define NewLMGetATalkInfoProc(userRoutine)        \
  106.         (LMGetATalkInfoUPP)(userRoutine)
  107.  
  108. typedef LM802AttachProcPtr LM802AttachUPP;
  109.  
  110. #define CallLM802AttachProc(userRoutine, theSelector, ProtHandlerPtr, ProtSpecPtr, enetRefNum)        \
  111.         (*(userRoutine))((theSelector), (ProtHandlerPtr), (ProtSpecPtr), (enetRefNum))
  112. #define NewLM802AttachProc(userRoutine)        \
  113.         (LM802AttachUPP)(userRoutine)
  114.  
  115. typedef LM802DetachProcPtr LM802DetachUPP;
  116.  
  117. #define CallLM802DetachProc(userRoutine, theSelector, ProtSpecPtr, enetRefNum)        \
  118.         (*(userRoutine))((theSelector), (ProtSpecPtr), (enetRefNum))
  119. #define NewLM802DetachProc(userRoutine)        \
  120.         (LM802DetachUPP)(userRoutine)
  121.  
  122. typedef LMGetAEQProcPtr LMGetAEQUPP;
  123.  
  124. #define CallLMGetAEQProc(userRoutine, theSelector)        \
  125.         (*(userRoutine))((theSelector))
  126. #define NewLMGetAEQProc(userRoutine)        \
  127.         (LMGetAEQUPP)(userRoutine)
  128.  
  129. #endif
  130.  
  131. /* 'atlk' resource ID's of Apple supplied driver software. */
  132. #define    LTalk        0
  133. #define    ETalkPh1    2
  134. #define    TTalkPh2    5
  135. #define    ETalkPh2    10
  136.  
  137. #endif